home *** CD-ROM | disk | FTP | other *** search
/ Trusted Irix /B 4.0.4 / Trusted-Irix B-4.0.1.iso / dist / eoe1.idb / usr / include / sys / stat.h.z / stat.h
C/C++ Source or Header  |  1992-04-03  |  3KB  |  91 lines

  1. #ifndef __SYS_STAT_H__
  2. #define __SYS_STAT_H__
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. /*    Copyright (c) 1984 AT&T    */
  9. /*      All Rights Reserved      */
  10.  
  11. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T    */
  12. /*    The copyright notice above does not evidence any       */
  13. /*    actual or intended publication of such source code.    */
  14.  
  15. /*#ident    "@(#)kern-port:sys/stat.h    10.7"*/
  16. #ident    "$Revision: 3.17 $"
  17.  
  18. #include <sys/types.h>
  19.  
  20. /*
  21.  * stat structure, used by stat(2) and fstat(2)
  22.  */
  23. struct    stat {
  24.     ino_t    st_ino;
  25.     dev_t    st_dev;
  26.     mode_t    st_mode;
  27.     short    st_nlink;
  28.     ushort    st_uid;
  29.     ushort    st_gid;
  30.     dev_t    st_rdev;
  31.     off_t    st_size;
  32.     time_t    st_atime;
  33.     time_t    st_mtime;
  34.     time_t    st_ctime;
  35. };
  36.  
  37. #define    S_IFMT    0170000        /* type of file */
  38. #define        S_IFDIR    0040000    /* directory */
  39. #define        S_IFCHR    0020000    /* character special */
  40. #define        S_IFBLK    0060000    /* block special */
  41. #define        S_IFREG    0100000    /* regular */
  42. #define        S_IFIFO    0010000    /* fifo */
  43. #define        S_IFLNK    0120000    /* symbolic link */
  44. #define        S_IFSOCK 0140000/* socket */
  45. #define    S_ISUID    04000        /* set user id on execution */
  46. #define    S_ISGID    02000        /* set group id on execution */
  47. #define    S_ISVTX    01000        /* directory permissions control */
  48. #define    S_IREAD    00400        /* read permission, owner */
  49. #define    S_IWRITE    00200    /* write permission, owner */
  50. #define    S_IEXEC    00100        /* execute/search permission, owner */
  51. #define    S_ENFMT    S_ISGID        /* record locking enforcement flag */
  52. #define    S_IRWXU    00700        /* read, write, execute: owner */
  53. #define    S_IRUSR    00400        /* read permission: owner */
  54. #define    S_IWUSR    00200        /* write permission: owner */
  55. #define    S_IXUSR    00100        /* execute permission: owner */
  56. #define    S_IRWXG    00070        /* read, write, execute: group */
  57. #define    S_IRGRP    00040        /* read permission: group */
  58. #define    S_IWGRP    00020        /* write permission: group */
  59. #define    S_IXGRP    00010        /* execute permission: group */
  60. #define    S_IRWXO    00007        /* read, write, execute: other */
  61. #define    S_IROTH    00004        /* read permission: other */
  62. #define    S_IWOTH    00002        /* write permission: other */
  63. #define    S_IXOTH    00001        /* execute permission: other */
  64.  
  65. #ifndef _KERNEL
  66.  
  67. /* "m" below is an st_mode field from above stat struct */
  68. #define S_ISDIR(m)    (((m) & S_IFMT) == S_IFDIR)
  69. #define S_ISCHR(m)    (((m) & S_IFMT) == S_IFCHR)
  70. #define S_ISBLK(m)    (((m) & S_IFMT) == S_IFBLK)
  71. #define S_ISREG(m)    (((m) & S_IFMT) == S_IFREG)
  72. #define S_ISFIFO(m)    (((m) & S_IFMT) == S_IFIFO)
  73. #define S_ISLNK(m)    (((m) & S_IFMT) == S_IFLNK)
  74. #define S_ISSOCK(m)    (((m) & S_IFMT) == S_IFSOCK)
  75.  
  76. extern mode_t    umask(mode_t);
  77. extern int    mkdir(const char *, mode_t);
  78. extern int    mkfifo(const char *, mode_t);
  79. extern int    stat(const char *, struct stat *);
  80. extern int    lstat(const char *, struct stat *);
  81. extern int    fstat(int, struct stat *);
  82. extern int    chmod(const char *, mode_t);
  83.  
  84. #endif /* !_KERNEL */
  85.  
  86. #ifdef __cplusplus
  87. }
  88. #endif
  89.  
  90. #endif /* !__SYS_STAT_H__ */
  91.